package solved;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.TreeSet;

/*
ID:		liluyan1
LANG:	JAVA
TASK:	zerosum
*/
public class zerosum {
	public static void main(String[] args) throws IOException {
		BufferedReader f = new BufferedReader(new FileReader("zerosum.in"));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
				"zerosum.out")));
		new zerosum().solve(f, out);
		out.close();
		System.exit(0);
	}
	
	private int N; 
	private int[] op;
	private TreeSet<String> res;
	
	private void solve(BufferedReader f, PrintWriter out) throws IOException {
		N = read(f);
		op = new int[N-1];
		res = new TreeSet<String>();
		dfs(0);
		
		for (String s : res) {
			out.println(s);
		}
	}
	
	private void dfs(int index) {
		if (index == N-1) {
			testZero();
			return;
		}
		for (int i=0; i<3; i++) {
			op[index] = i;
			dfs(index+1);
		}
	}
	
	private void testZero() {
		Deque<Integer> queue = new ArrayDeque<Integer>();
		Deque<Integer> queue2 = new ArrayDeque<Integer>();
		queue.add(1);
		StringBuilder sb = new StringBuilder();
		sb.append("1");
		for (int i=0; i<N-1; i++) {
			queue.add(i+2);
			if (op[i] == 2) {
				queue.add(queue.removeLast() + queue.removeLast()*10);
				sb.append(" ");
			}
			else {
				queue2.add(op[i]);
				sb.append(op[i]==0? "+" : "-");
			}
			sb.append(i+2);
		}
		
		while(!queue2.isEmpty()) {
			int op = queue2.removeFirst();
			switch (op) {
			case 0:
				queue.addFirst(queue.removeFirst() + queue.removeFirst());
				break;
			case 1:
				queue.addFirst(queue.removeFirst() - queue.removeFirst());
			}
		}
		
		if (queue.pop() == 0) {
			res.add(sb.toString());
		}
	}
	
	public int read(BufferedReader f) throws IOException {
		return Integer.parseInt(f.readLine());
	}
	
	public int[] read(BufferedReader f, int N) throws IOException {
		String[] t = f.readLine().split(" ");
		int[] a = new int[N];
		for (int i=0; i<N; i++) {
			a[i] = Integer.parseInt(t[i]);
		}
		return a;
	}
}
